import { loadRoutes } from './asyncRouter/routerUtil'
import {loginIgnore} from '@/router/index'


/**
 * 登录守卫
 * @param to
 * @param form
 * @param next
 * @param options
 */
const loginGuard = (to, from, next) => {
//   loginIgnore.includes(to)不需要拦截的路由
  if (!loginIgnore.includes(to) && !sessionStorage.getItem("TOKEN")) {
    alert('登录已失效，请重新登录')
    next({path: '/login'})
  } else {
    next()
  }
}

/**
 * 权限守卫
 * @param to
 * @param form
 * @param next
 * @param options
 */
// const authorityGuard = (to, from, next, options) => {
//   const {store, message} = options
//   const permissions = store.getters['account/permissions']
//   const roles = store.getters['account/roles']
//   if (!hasAuthority(to, permissions, roles)) {
//     message.warning(`对不起，您无权访问页面: ${to.fullPath}，请联系管理员`)
//     next({path: '/403'})
//   } else {
//     next()
//   }
// }



/**
 * 混合导航模式下一级菜单跳转重定向
 * @param to
 * @param from
 * @param next
 * @param options
 * @returns {*}
 */
// const redirectGuard = (to, from, next, options) => {
//   const {store} = options
//   const getFirstChild = (routes) => {
//     const route = routes[0]
//     if (!route.children || route.children.length === 0) {
//       return route
//     }
//     return getFirstChild(route.children)
//   }
//   if (store.state.setting.layout === 'mix') {
//     const firstMenu = store.getters['setting/firstMenu']
//     if (firstMenu.find(item => item.fullPath === to.fullPath)) {
//       store.commit('setting/setActivatedFirst', to.fullPath)
//       const subMenu = store.getters['setting/subMenu']
//       if (subMenu.length > 0) {
//         const redirect = getFirstChild(subMenu)
//         return next({path: redirect.fullPath})
//       }
//     }
//   }
//   next()
// }


export default {
  // beforeEach: [ loginGuard, authorityGuard, redirectGuard],
  beforeEach: [ loginGuard],
}
